package com.es.designmode.templatemethod;

/**
 * 抽象模板
 *
 * @author Will
 */
public abstract class AbstractClass {

    /**
     * 私有属性 1
     */
    public abstract void primitiveOperation1();

    /**
     * 私有属性 2
     */
    public abstract void primitiveOperation2();

    /**
     * 模板方法，给出逻辑骨架
     * 逻辑的组成是相应的抽象操作
     * 推迟到子类实现
     */
    public void TemplateMethod() {
        primitiveOperation1();
        primitiveOperation2();
        System.out.println("AbstractClass");
    }
}
